﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Process.Entities;
using Process.DAL;
using KZ.Exception;
using KZ.Utilities;

namespace Process.BLL
{
    public class PartnerBLL
    {
        public static bool ValidateLogin(string sID, string username, string password)
        {
            if (String.IsNullOrEmpty(username)) { throw new BusinessLogicException("Bạn phải nhập tên đăng nhập."); }
            if (String.IsNullOrEmpty(password)) { throw new BusinessLogicException("Bạn phải nhập mật khẩu."); }

            PartnerENT partner = PartnerDAL.GetPartnerByUsername(username);
            if (String.IsNullOrEmpty(partner.PartnerID)) { throw new BusinessLogicException("Tên đăng nhập không tồn tại."); }

            password = Utility.MD5Encrypt(password).ToLower();
            if (password != partner.PartnerPassword.ToLower()) { throw new BusinessLogicException("Mật khẩu không chính xác."); }

            SessionBLL sessionBLL = new SessionBLL();
            if (sessionBLL.InsertSession(sID, partner.PartnerID))
            {
                return true;
            }
            throw new BusinessLogicException("Có lỗi khi đăng nhập hệ thống.");
        }

        public static PartnerENT GetPartnerByID(string partnerID)
        {
            return PartnerDAL.GetPartnerByID(partnerID);
        }

        public static List<PartnerENT> GetPartnerList()
        {
            return PartnerDAL.GetPartnerList();
        }

        public static List<PartnerENT> GetPartnerListForCMB()
        {
            List<PartnerENT> partnerList = new List<PartnerENT>();
            partnerList.Add(new PartnerENT());
            partnerList.AddRange(PartnerDAL.GetPartnerList());

            return partnerList;
        }
    }
}
